﻿using System;
using System.Collections.Generic;
using eCommMongo.Core;
using eCommMongo.Core.Domain.Addresses;
using eCommMongo.Core.Domain.Customers;

namespace eCommMongo.Service.Customers
{
    public interface ICustomerService
    {
        
 
        
       
        Customer GetCustomerById(string customerId);
        Customer GetCustomerByEmail(string usernameOrEmail);
        Customer GetUserByGuid(Guid customerGuid);
        Customer GetCustomerByUserName(string userName);
        CustomerRole GetCustomerRoleBySystemName(string roleName);
        IList<CustomerRole> GetAllCustomerRoles();
        IList<Customer> GetAllNotUsedShopOwners();
        IPagedList<Customer> GetAllCustomers(int pageIndex, int pageSize);


        void UpdateCustomerShop(string customerId, string shopId);
        void UpdateCustomerPaymentMethodSystemName(string customerId, string paymentMethodName);
        void UpdateCustomerAddress(string toString, ICollection<Address> addresses);
        void UpdateCustomerSelectedShippingAddress(string customerId, Address shippingAddress);
        void UpdateCustomerLogo(string customerId,  string pictureId);
        void UpdateCustomerInfo(string customerId, string nickName, string intro);
        void UpdateCustomer(Customer customer);
        void DeleteCustomer(Customer customer);
        Customer InsertGuestCustomer();
        
    }
}